Speech processing units are an important part of modern digital communication systems such as mobile communication systems. For example, a speech processing unit located at a given node of a mobile communication system encodes sampled speech into packets for delivery to mobile end users reachable by a radio network node. The speech packets travel to the radio network node via one or more intermediate media gateways connected by packet-switched communication links. Speech processing units located at the intermediate media gateways may perform functions such as transcoding, voice enhancement, noise suppression and automatic gain control (AGC), to name a few. Individual speech processing units may perform processing functions for multiple users or “channels”.
A given speech processing unit provides processing capacity by means of a processing engine (including one or several digital signal processors—DSPs) running various processing tasks. For example, when running a speech coding task, the processing engine operates on small segments of speech, known as “frames”. Every frame of speech samples requires a certain amount of time to be processed and formulated into a packet of processed speech. The processing window of the processing engine (i.e., the amount of time between successive frames of speech samples) is divided into a number of processing intervals that have a corresponding duration (which can be fixed or variable) and activation instant (i.e., start time). Some of the processing intervals may be used for the aforesaid speech coding task, while others may be used for decoding and other tasks.
The manner in which processing tasks are scheduled can be based on various criteria, one of which may be to minimize the end-to-end delay between generation of a speech sample and transmission by the radio network node of a speech packet representing that speech sample. Another criterion could be to minimize the memory requirements of the radio network node. In these and other cases, it may be desirable to invoke a time alignment procedure.
An example of a time alignment procedure used in current systems is described in the Third Generation Partnership Project (3GPP) standardization document 25.415, hereby incorporated by reference herein. In accordance with the technique proposed in the above document, the radio network node sends a request to a given speech processing unit located upstream from the radio network node to apply a phase adjustment on the transmission of speech packets towards the radio network node. The given speech processing unit responds by attempting to satisfy the phase adjustment requested by the radio network node. This can be done by changing the duration or activation instant of the processing intervals assigned to specific processing tasks. The result is a new schedule for running the various processing tasks.
While the new schedule may benefit the radio network node by accommodating the requested phase adjustment, it may also have some unintended negative effects. For instance, the arrival of speech packets from a media gateway further upstream from the given speech processing unit may now clash with the new schedule. Specifically, the precise timing at which speech packets arrive from such further upstream media gateway may interfere with the ability of the given speech processing unit to handle multiple channels efficiently, given its new schedule. It may also result in increased buffering requirement on the given speech processing unit. As a result, speech packets may not be optimally processed by the given speech processing unit, and this may offset the benefit of having satisfied the phase adjustment requested by the radio network node.
Thus, there is a need in the industry to provide an improved mechanism for achieving time alignment along a multi-node communication link.